package com.resou.reader.view;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

import com.resou.reader.R;

/**
 * Created by ${Garrett} on 2018/11/23.
 * Contact me krouky@outlook.com
 */
public class ToggleView extends View {
//   private static final String NAMESPACE = "http://schemas.android.com/apk/res-auto";
    private boolean mSwitchState;

    public ToggleView(Context context) {
        super(context);
    }

    public ToggleView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public ToggleView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        // 获取配置的自定义属性
        TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.ToggleView, defStyleAttr, 0);
        int switchBackgroundResource = a.getResourceId(R.styleable.ToggleView_switch_background, -1);
        int slideButtonResource = a.getResourceId(R.styleable.ToggleView_slide_button, -1);
        mSwitchState = a.getBoolean(R.styleable.ToggleView_switch_state, false);
        //获取背景图片和开关图片后设置图片，便于在onMeasure()方法中设置View宽和高，防止Null
//        setSwitchBackgroundResource(switchBackgroundResource);
//        setSlideButtonResource(slideButtonResource);
//        init();


   }
    // Canvas 画布, 画板. 在上边绘制的内容都会显示到界面上.
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
//        // 1. 绘制背景
//        canvas.drawBitmap(switchBackgroupBitmap, 0, 0, paint);
//        // 2. 绘制滑块
//        if(isTouchMode){
//            // 根据当前用户触摸到的位置画滑块
//
//            // 让滑块向左移动自身一半大小的位置
//            float newLeft = currentX - slideButtonBitmap.getWidth() / 2.0f;
//
//            int maxLeft = switchBackgroupBitmap.getWidth() - slideButtonBitmap.getWidth();
//
//            // 限定滑块范围
//            if(newLeft < 0){
//                newLeft = 0; // 左边范围
//            }else if (newLeft > maxLeft) {
//                newLeft = maxLeft; // 右边范围
//            }
//
//            canvas.drawBitmap(slideButtonBitmap, newLeft, 0, paint);
//        }else {
//            // 根据开关状态boolean, 直接设置图片位置
//            if(mSwitchState){// 开
//                //开关打开时，开关按钮的位置在开关背景中的位置计算：
//                int newLeft = switchBackgroupBitmap.getWidth() - slideButtonBitmap.getWidth();
//                canvas.drawBitmap(slideButtonBitmap, newLeft, 0, paint);
//            }else {// 关
//                //开关关闭时，当前开关按钮所在的X轴上的位置点=0
//                canvas.drawBitmap(slideButtonBitmap, 0, 0, paint);
//            }
//        }

    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_UP:
//                isTouchMode = false;
//                System.out.println("event: ACTION_UP: " + event.getX());
//                currentX = event.getX();
//                float center = switchBackgroupBitmap.getWidth() / 2.0f;
//                // 根据当前按下的位置, 和控件中心的位置进行比较.
//                boolean state = currentX > center;
//
//                // 如果开关状态变化了, 通知界面. 里边开关状态更新了.
//                if(state != mSwitchState && onSwitchStateUpdateListener != null){
//                    // 把最新的boolean, 状态传出去了
//                    onSwitchStateUpdateListener.onStateUpdate(state);
//                }
//
//                mSwitchState = state;
//                break;
        }
        return super.onTouchEvent(event);
    }


}
